數字(Number)
Ruby 是一種物件導向式的語言,基本上所有看得見的東西都是物件(例外如Block),因此當然數字也是物件。
其中數字又可細分為 整數(integer) 與 浮點數(float)
16.class
=> Integer
>> 10.0.class
=> Float
基本數學運算
在運算上如果是單純的整數運算,返回值就是整數如果算式中有浮點數,則會返回浮點數比較重要的是整數除法
會返回商的整數部份
1 + 2 # 3
1.0 + 1.0 # 2.0
10 / 4 # 2
10 / 4.0 # 2.5
10.0 / 4.0 # 2.5
Infinity
將浮點數除以0,雖然在數學上除以0沒有意義,但在 ruby 中可以做出極大極小值,可以用來為一些比較做初始化。
+1.0 / 0 # Infinity
-1.0 / 0 # -Infinity
比較
1 == 1.0 # true
2 > 3 # false
10 < 12 #true
其中要注意的是 ruby 中浮點數並不精確,並不建議使用浮點數進行精確的比較
若需要精確的浮點數可以使用 BigDecimal
方法
奇數偶數判斷
#剛接觸程式語言判斷奇數偶數
num = 10
if num % 2 == 0
puts "偶數"
else
puts "奇數"
end
# %符號是代表取餘數的意思 如果num 除以2 得到的餘數是0 就印出偶數,不然就印出奇數
#但其實你可以這樣寫更快 更方便喔
5.odd? # true
8.even? # true
在 Ruby 裡,很多東西都不是它看起來的樣子,我們一般在算四則運算時
1+2 #3
#正常的認知是這樣,但...有說過ruby是一款物件導向的程式語言
#這看起來簡單到不行的加法運算,但其實那個 + 號其實並不是普通的加號,它在 Ruby 只是一個一般的方法(method),上面這行的原來的樣子應該是:
1 + (2) #3
#這意思就是 1 呼叫了 + 這個方法 然後把(2)當成參數帶進去 是不是很
要怎麼做「四捨五入到小數點第二位」?
我們可以使用數字物件的 round 方法,可以對數字進行四捨五入計算:
puts 3.222.round # => 3
puts 3.83.round # => 4
# round 就是一般的四捨五入方法
puts 2.3311.round(2) # => 3.33
puts 4.518.round(2) # => 4.52
#上面例子是取到小數點第二位